//
// Created by Castle-Moriarty on 2025/11/4.
//

#include <iostream>
using namespace std;

// 基类 A 的定义
class A {
public:
    int publicNum;

protected:
    int protectedNum;

private:
    int privateNum;
};

// 类B 使用 public 的方式继承A
class pubB : public A {
public:
    pubB() {
        publicNum = 10;
        protectedNum = 20;
        // privateNum  = 30;   // error
    }
};


// 类B 使用 protected 的方式继承A
class proB : protected A {
public:
    proB() {
        publicNum = 10;
        protectedNum = 20;
        // privateNum  = 30;   // error
    }
};

// 类B 使用 private 的方式继承A
class priB : private A {
public:
    priB() {
        publicNum = 10;
        protectedNum = 20;
        // privateNum  = 30;   // error
    }
};

void test() {
    pubB pubB;
    cout << pubB.publicNum << endl;

    proB proB;
};

int main() {
    return 0;
}
